package com.smart.community.region.service;

import com.smart.community.region.dto.ZoneSaveRequest;
import com.smart.community.region.dto.ZoneDrawingSaveDTO;
import com.smart.community.region.vo.CommunityEntryStateVO;
import com.smart.community.region.vo.ZoneManagementInitialDataVO;

/**
 * 分区管理服务接口
 *
 * @author Wu.Liang
 * @since 2025-01-30
 */
public interface IZoneManagementService {

    /**
     * 判断社区进入状态
     *
     * @param communityId 社区ID
     * @return 进入状态
     */
    CommunityEntryStateVO determineCommunityEntryState(Long communityId);

    /**
     * 获取分区管理初始数据
     *
     * @param communityId 社区ID
     * @return 初始数据
     */
    ZoneManagementInitialDataVO getInitialData(Long communityId);

    /**
     * 保存分区管理数据
     *
     * @param request 保存请求
     * @return 保存结果
     */
    String saveZoneData(ZoneSaveRequest request);

    /**
     * 保存绘图数据
     *
     * @param request 绘图数据
     * @return 保存结果
     */
    String saveDrawingData(ZoneDrawingSaveDTO request);

    /**
     * 更新绘图数据
     *
     * @param id 绘图数据ID
     * @param request 绘图数据
     * @return 更新结果
     */
    String updateDrawingData(Long id, ZoneDrawingSaveDTO request);

    /**
     * 获取社区绘图数据
     *
     * @param communityId 社区ID
     * @return 绘图数据
     */
    Object getCommunityDrawingData(Long communityId);
}
